package main

import "fmt"

// type Demo struct {
// 	name string
// }

// func CreateDemo(name string) *Demo {
// 	d := new(Demo)
// 	d.name = name
// 	return d
// }

// func test(d *Demo) {
// 	fmt.Println(d.name)
// }

// func main() {
// 	demo := CreateDemo("demo")
// 	test(demo)
// }

func Increase() func() int {
	n := 0
	return func() int {
		n++
		return n
	}
}

func main() {
	in := Increase()
	fmt.Println(in)
	fmt.Println(in)
}
